﻿using System;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Entities.Shared;

namespace Wino.Core.Domain.Models.MailItem;

/// <summary>
/// Interface of simplest representation of a MailCopy.
/// </summary>
public interface IMailItem : IMailHashContainer
{
    Guid UniqueId { get; }
    string Id { get; }
    string Subject { get; }
    string ThreadId { get; }
    string MessageId { get; }
    string References { get; }
    string InReplyTo { get; }
    string PreviewText { get; }
    string FromName { get; }
    DateTime CreationDate { get; }
    string FromAddress { get; }
    bool HasAttachments { get; }
    bool IsFlagged { get; }
    bool IsFocused { get; }
    bool IsRead { get; }
    string DraftId { get; }
    bool IsDraft { get; }
    Guid FileId { get; }

    MailItemFolder AssignedFolder { get; }
    MailAccount AssignedAccount { get; }
    AccountContact SenderContact { get; }
}
